在 Bash 或 Shell Script 裡,可以用下面幾個參數來判斷檔案的狀態,在 if statement 中非常的實用
- -e:當檔案存在時為真
- -d:當檔案類型是資料夾時為真
- -f:當檔案存在且類型是普通檔案時為真(非連結、資料夾、device node)
- -h:當檔案存在且類型是符號連結時為真
- -s:當檔案大小不等於 0 時為真
- -u:當檔案有 suid 時為真
- -g:當檔案有 sgid 時為真
- -r:當檔案可讀時為真
- -w:當檔案可寫時為真
- -x:當檔案可執行時為真
用法
檢查 /etc/passwd 這個檔案是否存在
#!/bin/bash
if [[ -e '/etc/passwd' ]]; then
echo "passwd exist "
else
echo "file not found"
fi
詳細的參數可參考 man 1 test